<template>
  <div class="app-container" v-loading="loading">
    <div class="search-container">
      <FormList :initForm="initSearchForm" v-model:formModel="searchForm"></FormList>
    </div>
    <el-card shadow="never" class="table-container">
      <comTable
        :data="tableDatasCom"
        :config="tableconfig"
        :tableHeader="tableHeader"
        @link-click="handleTableBtnClick"
        @selection-change="handleTableSelectionChange"
      >
      </comTable>

      <pagination
        v-if="tableDatasObj.paging.total > 0"
        v-model:total="tableDatasObj.paging.total"
        v-model:page="tableDatasObj.paging.page"
        v-model:limit="tableDatasObj.paging.limit"
        @pagination="handleQuery"
      />
    </el-card>
  </div>
</template>

<script setup lang="ts">
import { watch, inject } from "vue";
import { FormInstance } from "element-plus";
import FormList from "@/components/FormList/index.vue";
import comTable from "@/components/comTable/comTable.vue";
// import { all as merchant_all } from "@/api/other/merchant";
import {
  all as ms_all,
  list,
  add,
  deleteByIds,
  edit,
  option,
  amount_change,
  login_clear,
  google_clear,
  tg_bind,
  tg_clear,
  tg_clear_all,
  ms_child,
} from "@/api/other/ms";
import { cloneDeep, values } from "lodash";
import JournalAccountOfCapital from "./journal-account-of-capital.vue";
// import JournalAccountOfCapital from './components/JournalAccountOfCapital.vue';
// import { payment_stat as list } from "@/api/other/payment";
// import { ProductListVO } from "@/api/other/types";
import { usePayProductStore } from "@/store";

const { copy } = useClipboard({ legacy: true });
const getFormatDate = inject("getFormatDate");
const switchFieldHandle = inject("switchFieldHandle");
// const getTimestamp: number | null = inject("getTimestamp");

const tableDatasObj = ref({
  list: [],
  paging: {
    limit: 20,
    page: 1,
    total: 0,
  },
  queryParams: {},
});
const loading = ref(false);

// 时间类型(1:创建时间；2:修改时间)
// "status": "订单状态(1:待处理；2:处理中；3:已完成；4:处理失败)",
// "return_status": "通知状态 (1:未支付；2:回调成功；3:回调失败)",
// "correct_status": "冲正状态(1:正常；2:已冲正)",
// const timeTypeOption = [
//   {
//     label: "创建时间",
//     value: "1",
//   },
//   {
//     label: "修改时间",
//     value: "2",
//   },
// ];
// const statusOption = [
//   {
//     label: "待处理",
//     value: "1",
//   },
//   {
//     label: "处理中",
//     value: "2",
//   },
//   {
//     label: "已完成",
//     value: "3",
//   },
//   {
//     label: "处理失败",
//     value: "4",
//   },
// ];
// const return_statusOption = [
//   {
//     label: "未支付",
//     value: "1",
//   },
//   {
//     label: "回调成功",
//     value: "2",
//   },
//   {
//     label: "回调失败",
//     value: "3",
//   },
// ];
// const correct_statusOption = [
//   {
//     label: "正常",
//     value: "1",
//   },
//   {
//     label: "已冲正",
//     value: "2",
//   },
// ];
const workStatusOptions = [
  {
    label: "未开工",
    value: "2",
  },
  {
    label: "开工",
    value: "1",
  },
];
const options = {
  handle_type: [
    {
      label: "减少",
      value: "1",
    },
    {
      label: "增加",
      value: "2",
    },
  ],
  capital_type: [
    {
      label: "可用余额",
      value: "1",
    },
    {
      label: "冻结余额",
      value: "2",
    },
  ],
  reason: [
    {
      label: "充值上分",
      value: "1",
    },
    {
      label: "调整余额",
      value: "2",
    },
    {
      label: "冲正",
      value: "3",
    },
    {
      label: "补单",
      value: "4",
    },
  ],
};

const searchForm = ref({});
const initSearchForm = ref({
  // 表单标签位置
  // labelPosition: "right",
  formAttrs: {
    // 是否内联
    inline: true,
  },
  rowAttrs: {
    // 行内表单数量
    columnsNum: 4,
  },
  // 初始化表单字段
  initKeys: [
    {
      // 类型
      type: "select-v2",
      // 唯一标识
      key: "ms_id",
      // 表单属性
      formAttrs: {
        label: "码商用户名",
        labelWidth: 100,
      },
      // 控制属性
      controlAttrs: {
        // 提示文本
        placeholder: "请输入码商用户名",
        // 是否可清空
        clearable: true,
        filterable: true,
        options: [],
      },
      // 控制事件
      controlOn: {},
    },
    {
      // 类型
      type: "input",
      // 唯一标识
      key: "nick_name",
      // 表单属性
      formAttrs: {
        label: "码商昵称",
      },
      // 控制属性
      controlAttrs: {
        // 提示文本
        placeholder: "请输入码商昵称",
        // 是否可清空
        clearable: true,
        filterable: true,
        options: [],
      },
      // 控制事件
      controlOn: {},
    },
    {
      // 类型
      type: "select-v2",
      // 唯一标识
      key: "pro_id",
      // 表单属性
      formAttrs: {
        label: "支付渠道",
      },
      // 控制属性
      controlAttrs: {
        // 提示文本
        placeholder: "请选择渠道名称",
        // 是否可清空
        clearable: true,
        filterable: true,
        options: [],
      },
      // 控制事件
      controlOn: {},
    },
    {
      // 类型
      type: "select-v2",
      // 唯一标识
      key: "level",
      // 表单属性
      formAttrs: {
        label: "码商等级",
      },
      // 控制属性
      controlAttrs: {
        // 提示文本
        placeholder: "请选择码商等级",
        // 是否可清空
        clearable: true,
        filterable: true,
        options: [
          {
            label: "一级",
            value: "1",
          },
          {
            label: "二级",
            value: "2",
          },
          {
            label: "三级",
            value: "3",
          },
          {
            label: "四级",
            value: "4",
          },
          {
            label: "五级",
            value: "5",
          },
        ],
      },
      // 控制事件
      controlOn: {},
    },
    // {
    //   // 类型
    //   type: "input-number",
    //   // 唯一标识
    //   key: "amount",
    //   // 表单属性
    //   formAttrs: {
    //     label: "层级",
    //   },
    //   // 控制属性
    //   controlAttrs: {
    //     // 提示文本
    //     placeholder: "请输入层级",
    //     // 是否可清空
    //     clearable: true,
    //     style: "width: 100%",
    //     min: 1,
    //   },
    //   // 控制事件
    //   controlOn: {},
    // },
    // {
    //   // 类型
    //   type: "select-v2",
    //   // 唯一标识
    //   key: "pro_id",
    //   // 表单属性
    //   formAttrs: {
    //     label: "产品名称",
    //   },
    //   // 控制属性
    //   controlAttrs: {
    //     // 提示文本
    //     placeholder: "请选择产品名称",
    //     // 是否可清空
    //     clearable: true,
    //     filterable: true,
    //     options: [],
    //   },
    //   // 控制事件
    //   controlOn: {},
    // },
    {
      // 类型
      type: "date-picker",
      // 唯一标识
      key: "start_time",
      // 表单属性
      formAttrs: {
        label: "开始时间",
      },
      // 控制属性
      controlAttrs: {
        // 提示文本
        placeholder: "请选择开始时间",
        // 是否可清空
        clearable: true,
        style: {
          width: "100%",
        },
      },
      // 控制事件
      controlOn: {},
    },
    {
      // 类型
      type: "date-picker",
      // 唯一标识
      key: "end_time",
      // 表单属性
      formAttrs: {
        label: "结束时间",
      },
      // 控制属性
      controlAttrs: {
        // 提示文本
        placeholder: "请选择结束时间",
        // 是否可清空
        clearable: true,
        style: {
          width: "100%",
        },
      },
      // 控制事件
      controlOn: {},
    },
    {
      // 类型
      type: "buttons",
      // 按钮
      btns: [
        {
          // 文本
          text: "搜索",
          // 控制属性
          controlAttrs: {
            // 类型
            type: "primary",
            icon: "search",
          },
          // 控制事件
          controlOn: {
            // 点击
            click: (e: Event, formRef: FormInstance, data: object) => {
              formRef.validate((valid) => {
                if (valid) {
                  tableDatasObj.value.paging.page = 1;

                  let tempData = { ...data };

                  // tempData.start_time = getTimestamp(data.start_time);
                  // tempData.end_time = getTimestamp(data.end_time);

                  tableDatasObj.value.queryParams = tempData;

                  handleQuery(tableDatasObj.value.paging);
                }
              });
            },
          },
        },
        {
          // 文本
          text: "重置",
          // 控制属性
          controlAttrs: {
            icon: "refresh",
          },
          // 控制事件
          controlOn: {
            // 点击
            click: resetQuery,
          },
        },
      ],
    },
  ],
});

// merchant_all().then((res) => {
//   initSearchForm.value.initKeys[0].controlAttrs.options = res.map((item) => ({
//     label: item.mer_name,
//     value: item.id,
//   }));
// });

// ms_all().then((res) => {
//   initSearchForm.value.initKeys[0].controlAttrs.options = res.map((item) => ({
//     label: item.ms_name,
//     value: item.id,
//   }));
//   initSearchForm.value.initKeys[2].controlAttrs.options = res.map((item) => ({
//     label: item.ms_name,
//     value: item.id,
//   }));
// });

let msList = [];
ms_all().then((res) => {
  initSearchForm.value.initKeys[0].controlAttrs.options = res.map((item) => ({
    label: item.ms_name,
    value: item.id,
  }));

  msList = initSearchForm.value.initKeys[0].controlAttrs.options;
});

(async () => {
  initSearchForm.value.initKeys[2].controlAttrs.options = (
    await usePayProductStore().loadPayProducts()
  ).map((item) => ({
    label: item.pro_name,
    value: item.id,
  }));
})();

/** 重置查询 */
function resetQuery(e: Event, formRef: FormInstance, data: object) {
  // 重置表单
  formRef.resetFields();
  // 查询
  tableDatasObj.value.paging.page = 1;
  tableDatasObj.value.paging.limit = 20;
  tableDatasObj.value.queryParams = { ...searchForm.value };
  const params = {
    ...tableDatasObj.value.queryParams,
    ...data,
    ...tableDatasObj.value.paging,
  };

  handleQuery(params);
}

// 表*********************************************
const tableDatasCom = computed(() => {
  return tableDatasObj.value.list.map((item: any) => {
    return {
      ...item,
      handle_order_statusCom: item.handle_order_status.toString() === "1" ? true : false,
      statusCom: item.status.toString() === "1" ? true : false,
      must_df_amountCom: item.must_df_amount.toString() === "1" ? true : false,
      // rate_com:
      //   (item.order_total
      //     ? (item.order_success_total * 100) / item.order_total
      //     : 0
      //   ).toFixed(2) + "%",
    };
  });
});
const tableconfig = {
  // tableHeight: 480, //表格高度
  isSelection: true, //显示复选框
  isRowClick: false, //使用行点击
  isStripe: true, //隐藏斑马纹，与背景色不可同时用
  isShowSummary: false, //显示共计
  isIndex: true, //自定义序号
  isNeedPagination: true, //是否需要分页
};
const tableHeader = [
  { label: "ID", prop: "id", width: 100 },
  { label: "码商用户名", prop: "ms_name", },
  // { label: "码商昵称", prop: "nick_name", width: 200 },
  { label: "支付产品", prop: "nick_name", width: 200 },
  { label: "订单总金额", prop: "nick_name", width: 200 },
  { label: "成功总金额", prop: "nick_name", width: 200 },
  { label: "通道方收入", prop: "nick_name", width: 200 },
  { label: "通道服务费", prop: "nick_name", width: 200 },
];

const selectTableRows = ref([]);
function handleTableSelectionChange(selectRows) {
  selectTableRows.value = selectRows;
}

/**
 * 查询
 */
function handleQuery(paging: { page: number; limit: number }) {
  loading.value = true;
  list({ ...tableDatasObj.value.paging, ...tableDatasObj.value.queryParams })
    .then((res) => {
      tableDatasObj.value.list = res.list;
      tableDatasObj.value.total_usable_amount = res.total_usable_amount;
      tableDatasObj.value.total_frozen_amount = res.total_frozen_amount;
    })
    .finally(() => {
      loading.value = false;
    });
  // if (tableDatasObj.paging.typeCode) {
  // loading.value = true;
  // getDictPage(queryParams)
  //   .then(({ data }) => {
  //     dictList.value = data.list;
  //     total.value = data.total;
  //   })
  //   .finally(() => (loading.value = false));
  // }
}

// const statInfo = ref({});
// const dealSuccessRateCom = computed(() => {
//   return statInfo.value.total_amount
//     ? ((statInfo.value.success_amount * 100) / statInfo.value.total_amount).toFixed(2)
//     : 0;
// });
// // const orderSuccessRateCom.value = computed(() => {
// //   return statInfo.value.period_count
// //     ? statInfo.value.period_success_count * 100 / statInfo.value.period_count
// //     : 0;
// // });

// // 统计
// function loadstat() {
//   loading.value = true;
//   stat()
//     .then((res) => {
//       statInfo.value = res;
//     })
//     .finally(() => (loading.value = false));
// }

// loadstat();
// 完*********************************************

const initDialogForm = ref({
  // 表单标签位置
  formAttrs: {
    // 是否内联
    // inline: true,
    labelPosition: "top",
  },
  rowAttrs: {
    // 行内表单数量
    columnsNum: 2,
  },
  // 初始化表单字段
  initKeys: <any>[],
});

let initDialogFormBak = cloneDeep(initDialogForm.value);

const isHasOptions = [
  {
    // 标签
    label: "关闭",
    // 值
    value: 0,
  },
  {
    // 标签
    label: "开启",
    // 值
    value: 1,
  },
];

const switchFieldArr = [
  "allow_df",
  "status",
  "handle_order_status",
  "audit_df",
  "allow_zf",
  "must_df_amount",
];

function handleTableBtnClick(row: object, title: string) {
  dialog.type = title;
  dialog.visible = true;
  dialog.singleData = tableDatasCom.value.find((item) => item.id === row.id);

  if (title === "add") {
    // 添加码商
    dialog.title = "添加码商";
    dialog.leftBtnText = "确 定";
    dialog.rightBtnText = "取 消";

    initDialogForm.value.initKeys.push(
      ...[
        // 产品名称
        // 通道代码
        // 通道显示
        // 状态
        {
          // 类型
          type: "select-v2",
          // 唯一标识
          key: "parent_id",
          // 表单属性
          formAttrs: {
            label: "所属码商",
          },
          // 控制属性
          controlAttrs: {
            // 提示文本
            placeholder: "请选择所属码商（非必选）",
            // 是否可清空
            clearable: true,
            filterable: true,
            options: [],
          },
          // 控制事件
          controlOn: {},
        },
        {
          // 类型
          type: "input",
          // 唯一标识
          key: "ms_name",
          // 表单属性
          formAttrs: {
            label: "用户名",
          },
          // 控制属性
          controlAttrs: {
            // 提示文本
            placeholder: "请输入用户名",
            // 是否可清空
            clearable: true,
          },
          // 控制事件
          controlOn: {},
        },
        {
          // 类型
          type: "input",
          // 唯一标识
          key: "password",
          // 表单属性
          formAttrs: {
            label: "密码",
          },
          // 控制属性
          controlAttrs: {
            // 提示文本
            placeholder: "请输入密码（6-12位）",
            // 是否可清空
            clearable: true,
            maxlength: 12,
          },
          // 控制事件
          controlOn: {},
        },
        {
          // 类型
          type: "input",
          // 唯一标识
          key: "nick_name",
          // 表单属性
          formAttrs: {
            label: "昵称",
          },
          // 控制属性
          controlAttrs: {
            // 提示文本
            placeholder: "请输入昵称",
            // 是否可清空
            clearable: true,
          },
          // 控制事件
          controlOn: {},
        },
        // {
        //   // 类型
        //   type: "input-number",
        //   // 唯一标识
        //   key: "deposit",
        //   // 表单属性
        //   formAttrs: {
        //     label: "押金",
        //   },
        //   // 控制属性
        //   controlAttrs: {
        //     // 提示文本
        //     placeholder: "请输入押金",
        //     // 是否可清空
        //     clearable: true,
        //   },
        //   // 控制事件
        //   controlOn: {},
        // },
        // {
        //   // 类型
        //   type: "input",
        //   // 唯一标识
        //   key: "confirm_password",
        //   // 表单属性
        //   formAttrs: {
        //     label: "确认密码",
        //   },
        //   // 控制属性
        //   controlAttrs: {
        //     // 提示文本
        //     placeholder: "请输入确认密码（6-12位）",
        //     // 是否可清空
        //     clearable: true,
        //     maxlength: 12,
        //   },
        //   // 控制事件
        //   controlOn: {},
        // },
        // {
        //   type: "empty",
        // },
        {
          // 类型
          type: "switch",
          // 唯一标识
          key: "status",
          // 表单属性
          formAttrs: {
            label: "状态",
          },
          // 控制属性
          controlAttrs: {
            value: false,
          },
          // 控制事件
          controlOn: {},
        },
        {
          // 类型
          type: "switch",
          // 唯一标识
          key: "handle_order_status",
          // 表单属性
          formAttrs: {
            label: "接单状态",
          },
          // 控制属性
          controlAttrs: {
            value: false,
          },
          // 控制事件
          controlOn: {},
        },
      ]
    );

    ms_all({
      page: 1,
      limit: 99999,
    }).then((res) => {
      initDialogForm.value.initKeys[0].controlAttrs.options = res.map((item) => {
        return {
          label: item.ms_name,
          value: item.id,
        };
      });
    });
  } else if (title === "edit") {
    // 编辑
    const switchFieldObj = Object.fromEntries(
      switchFieldArr.map((field) => {
        return [[field], switchFieldHandle.getDisplay(dialog.singleData[field])];
      })
    );
    dialog.visible = true;
    dialog.title = "编辑码商";
    dialog.leftBtnText = "确 定";
    dialog.rightBtnText = "取 消";

    initDialogForm.value.initKeys = [
      {
        // 类型
        type: "select-v2",
        // 唯一标识
        key: "parent_id",
        // 表单属性
        formAttrs: {
          label: "上级代理",
        },
        // 控制属性
        controlAttrs: {
          // 提示文本
          placeholder: "请填写上级代理",
          // 是否可清空
          clearable: true,
        },
        value: dialog.singleData.parent_id || "",
        // 控制事件
        controlOn: {},
      },
      {
        // 类型
        type: "input",
        // 唯一标识
        key: "ms_name",
        // 表单属性
        formAttrs: {
          label: "登录用户名",
        },
        // 控制属性
        controlAttrs: {
          // 提示文本
          placeholder: "请填写码商用户名",
          // 是否可清空
          clearable: true,
          disabled: true,
        },
        value: dialog.singleData.ms_name,
        // 控制事件
        controlOn: {},
      },
      {
        // 类型
        type: "input",
        // 唯一标识
        key: "password",
        // 表单属性
        formAttrs: {
          label: "登录密码",
        },
        // 控制属性
        controlAttrs: {
          // 提示文本
          placeholder: "请填写登录密码",
          // 是否可清空
          clearable: true,
        },
        value: dialog.singleData.password,
        // 控制事件
        controlOn: {},
      },
      {
        // 类型
        type: "input",
        // 唯一标识
        key: "nick_name",
        // 表单属性
        formAttrs: {
          label: "码商昵称",
        },
        // 控制属性
        controlAttrs: {
          // 提示文本
          placeholder: "请填写码商昵称",
          // 是否可清空
          clearable: true,
        },
        value: dialog.singleData.nick_name,
        // 控制事件
        controlOn: {},
      },
      // {
      //   // 类型
      //   type: "input-number",
      //   // 唯一标识
      //   key: "deposit",
      //   // 表单属性
      //   formAttrs: {
      //     label: "押金",
      //   },
      //   // 控制属性
      //   controlAttrs: {
      //     // 提示文本
      //     placeholder: "请输入押金",
      //     // 是否可清空
      //     clearable: true,
      //   },
      //   value: dialog.singleData.deposit,
      //   // 控制事件
      //   controlOn: {},
      // },
      {
        // 类型
        type: "input-number",
        // 唯一标识
        key: "df_rate",
        // 表单属性
        formAttrs: {
          label: "代收费率设置(%)",
        },
        // 控制属性
        controlAttrs: {
          // 提示文本
          placeholder: "请填写代付费率（%）",
          // 是否可清空
          clearable: true,
          precision: 2,
          step: 0.1,
          min: 0,
          max: 100,
        },
        value: dialog.singleData.df_rate,
        // 控制事件
        controlOn: {},
      },
      {
        // 类型
        type: "input-number",
        // 唯一标识
        key: "min_amount",
        // 表单属性
        formAttrs: {
          label: "最低接单金额",
        },
        // 控制属性
        controlAttrs: {
          // 提示文本
          placeholder: "请填写最低接单金额",
          // 是否可清空
          clearable: true,
          precision: 2,
          step: 0.1,
          min: 0,
        },
        value: dialog.singleData.min_amount,
        // 控制事件
        controlOn: {},
      },
      // {
      //   // 类型
      //   type: "input",
      //   // 唯一标识
      //   key: "confirm_password",
      //   // 表单属性
      //   formAttrs: {
      //     label: "确认密码",
      //   },
      //   // 控制属性
      //   controlAttrs: {
      //     // 提示文本
      //     placeholder: "请填写确认密码",
      //     // 是否可清空
      //     clearable: true,
      //   },
      //   value: dialog.singleData.confirm_password,
      //   // 控制事件
      //   controlOn: {},
      // },
      {
        // 类型
        type: "input",
        // 唯一标识
        key: "safety_code",
        // 表单属性
        formAttrs: {
          label: "安全码",
        },
        // 控制属性
        controlAttrs: {
          // 提示文本
          placeholder: "请填写安全码",
          // 是否可清空
          clearable: true,
        },
        value: dialog.singleData.safety_code,
        // 控制事件
        controlOn: {},
      },
      // {
      //   // 类型
      //   type: "switch",
      //   // 唯一标识
      //   key: "allow_df",
      //   // 表单属性
      //   formAttrs: {
      //     label: "是否允许代付",
      //   },
      //   // 控制属性
      //   controlAttrs: {
      //     // 提示文本
      //     placeholder: "请填写是否允许代付",
      //     // 是否可清空
      //     clearable: true,
      //   },
      //   value: switchFieldObj["allow_df"],
      //   // 控制事件
      //   controlOn: {},
      // },
      // {
      //   // 类型
      //   type: "switch",
      //   // 唯一标识
      //   key: "status",
      //   // 表单属性
      //   formAttrs: {
      //     label: "状态",
      //   },
      //   // 控制属性
      //   controlAttrs: {
      //     // 提示文本
      //     placeholder: "请填写状态",
      //     // 是否可清空
      //     clearable: true,
      //   },
      //   value: switchFieldObj["status"],
      //   // 控制事件
      //   controlOn: {},
      // },
      // {
      //   // 类型
      //   type: "switch",
      //   // 唯一标识
      //   key: "handle_order_status",
      //   // 表单属性
      //   formAttrs: {
      //     label: "接单状态",
      //   },
      //   // 控制属性
      //   controlAttrs: {
      //     // 提示文本
      //     placeholder: "请填写接单状态",
      //     // 是否可清空
      //     clearable: true,
      //   },
      //   value: switchFieldObj["handle_order_status"],
      //   // 控制事件
      //   controlOn: {},
      // },
      // {
      //   // 类型
      //   type: "input",
      //   // 唯一标识
      //   key: "deposit",
      //   // 表单属性
      //   formAttrs: {
      //     label: "押金",
      //   },
      //   // 控制属性
      //   controlAttrs: {
      //     // 提示文本
      //     placeholder: "请填写押金",
      //     // 是否可清空
      //     clearable: true,
      //   },
      //   value: dialog.singleData.deposit,
      //   // 控制事件
      //   controlOn: {},
      // },
      // {
      //   // 类型
      //   type: "switch",
      //   // 唯一标识
      //   key: "audit_df",
      //   // 表单属性
      //   formAttrs: {
      //     label: "是否审核代付",
      //   },
      //   // 控制属性
      //   controlAttrs: {
      //     // 提示文本
      //     placeholder: "请填写是否审核代付",
      //     // 是否可清空
      //     clearable: true,
      //   },
      //   value: switchFieldObj["audit_df"],
      //   // 控制事件
      //   controlOn: {},
      // },
      // {
      //   // 类型
      //   type: "input",
      //   // 唯一标识
      //   key: "back_whitelist",
      //   // 表单属性
      //   formAttrs: {
      //     label: "监控回调ip白名单",
      //   },
      //   // 控制属性
      //   controlAttrs: {
      //     // 提示文本
      //     placeholder: "请填写监控回调ip白名单",
      //     // 是否可清空
      //     clearable: true,
      //   },
      //   value: dialog.singleData.back_whitelist,
      //   // 控制事件
      //   controlOn: {},
      // },
      // {
      //   // 类型
      //   type: "input",
      //   // 唯一标识
      //   key: "ip_whitelistip",
      //   // 表单属性
      //   formAttrs: {
      //     label: "白名单",
      //   },
      //   // 控制属性
      //   controlAttrs: {
      //     // 提示文本
      //     placeholder: "请填写白名单（多个以,隔开）",
      //     // 是否可清空
      //     clearable: true,
      //   },
      //   value: dialog.singleData.ip_whitelistip,
      //   // 控制事件
      //   controlOn: {},
      // },
      // {
      //   // 类型
      //   type: "switch",
      //   // 唯一标识
      //   key: "allow_zf",
      //   // 表单属性
      //   formAttrs: {
      //     label: "是否允许转分",
      //   },
      //   // 控制属性
      //   controlAttrs: {
      //     // 提示文本
      //     placeholder: "请填写是否允许转分（多个以,隔开）",
      //     // 是否可清空
      //     clearable: true,
      //   },
      //   value: switchFieldObj["allow_zf"],
      //   // 控制事件
      //   controlOn: {},
      // },
      // {
      //   // 类型
      //   type: "switch",
      //   // 唯一标识
      //   key: "must_df_amount",
      //   // 表单属性
      //   formAttrs: {
      //     label: "是否强制代付余额",
      //   },
      //   // 控制属性
      //   controlAttrs: {
      //     // 提示文本
      //     placeholder: "请填写是否强制代付余额",
      //     // 是否可清空
      //     clearable: true,
      //   },
      //   value: switchFieldObj["must_df_amount"],
      //   // 控制事件
      //   controlOn: {},
      // },
    ];

    ms_all({
      isEdit: 1,
    }).then((res) => {
      initDialogForm.value.initKeys[0].controlAttrs.options = res
        .filter(
          (item) =>
            (item.id === dialog.singleData.parent_id || !item.is_delete) &&
            item.id !== dialog.singleData.id
        )
        .map((item) => ({
          label: item.ms_name,
          value: item.id,
          disabled: item.is_delete,
        }));
    });
  } else if (title === "channel-allocation") {
    // 渠道配置
    dialog.title = "渠道配置";
    dialog.leftBtnText = "确 定";
    dialog.rightBtnText = "取 消";

    initDialogForm.value.initKeys = [
      {
        // 类型
        type: "input",
        // 唯一标识
        key: "set-rate",
        // 表单属性
        formAttrs: {
          label: "自定义引导语",
        },
        // 控制属性
        controlAttrs: {
          // 提示文本
          // placeholder: "用户名/昵称/手机号",
          // 是否可清空
          clearable: true,
        },
        // 控制事件
        controlOn: {},
      },
      {
        // 类型
        type: "select",
        // 唯一标识
        key: "qqq1",
        // 表单属性
        formAttrs: {
          label: "支付页面是否提交姓名",
        },
        // 控制属性
        controlAttrs: {
          value: 0,
        },
        // 选项
        options: isHasOptions,
      },
      {
        // 类型
        type: "select",
        // 唯一标识
        key: "qqq1",
        // 表单属性
        formAttrs: {
          label: "锁码",
        },
        // 控制属性
        controlAttrs: {
          value: 0,
        },
        // 选项
        options: isHasOptions,
      },
      {
        // 类型
        type: "select",
        // 唯一标识
        key: "qqq1",
        // 表单属性
        formAttrs: {
          label: "订单金额浮动",
        },
        // 控制属性
        controlAttrs: {
          value: 0,
        },
        // 选项
        options: isHasOptions,
      },
      {
        // 类型
        type: "input",
        // 唯一标识
        key: "qqq5",
        // 表单属性
        formAttrs: {
          label: "订单浮动金额个数",
        },
        // 控制属性
        controlAttrs: {
          // 提示文本
          // placeholder: "用户名/昵称/手机号",
          // 是否可清空
          clearable: true,
        },
        // 控制事件
        controlOn: {},
      },
      {
        // 类型
        type: "select",
        // 唯一标识
        key: "qqq1",
        // 表单属性
        formAttrs: {
          label: "订单金额不下浮(优先)",
        },
        // 控制属性
        controlAttrs: {
          value: 0,
        },
        // 选项
        options: isHasOptions,
      },
      {
        // 类型
        type: "select",
        // 唯一标识
        key: "qqq1",
        // 表单属性
        formAttrs: {
          label: "订单金额不上浮",
        },
        // 控制属性
        controlAttrs: {
          value: 0,
        },
        // 选项
        options: isHasOptions,
      },
      {
        // 类型
        type: "select",
        // 唯一标识
        key: "qqq1",
        // 表单属性
        formAttrs: {
          label: "确认收款是否需要确认安全码",
        },
        // 控制属性
        controlAttrs: {
          value: 0,
        },
        // 选项
        options: isHasOptions,
      },
      {
        // 类型
        type: "select",
        // 唯一标识
        key: "qqq1",
        // 表单属性
        formAttrs: {
          label: "自动刷新时是否只显示未支付订单",
        },
        // 控制属性
        controlAttrs: {
          value: 0,
        },
        // 选项
        options: isHasOptions,
      },
      {
        // 类型
        type: "select",
        // 唯一标识
        key: "qqq1",
        // 表单属性
        formAttrs: {
          label: "确认收款时是否确认信息",
        },
        // 控制属性
        controlAttrs: {
          value: 0,
        },
        // 选项
        options: isHasOptions,
      },
      {
        // 类型
        type: "select",
        // 唯一标识
        key: "qqq1",
        // 表单属性
        formAttrs: {
          label: "码商设置收款码金额区间",
        },
        // 控制属性
        controlAttrs: {
          value: 0,
        },
        // 选项
        options: isHasOptions,
      },
      {
        // 类型
        type: "input",
        // 唯一标识
        key: "qqq5",
        // 表单属性
        formAttrs: {
          label: "收款码收款最小金额(码商设置收款码金额区间关闭后才有作用)",
        },
        // 控制属性
        controlAttrs: {
          // 提示文本
          // placeholder: "用户名/昵称/手机号",
          // 是否可清空
          clearable: true,
        },
        // 控制事件
        controlOn: {},
      },
      {
        // 类型
        type: "input",
        // 唯一标识
        key: "qqq5",
        // 表单属性
        formAttrs: {
          label: "收款码收款最大金额(码商设置收款码金额区间关闭后才有作用)",
        },
        // 控制属性
        controlAttrs: {
          // 提示文本
          // placeholder: "用户名/昵称/手机号",
          // 是否可清空
          clearable: true,
        },
        // 控制事件
        controlOn: {},
      },
      {
        // 类型
        type: "select",
        // 唯一标识
        key: "qqq1",
        // 表单属性
        formAttrs: {
          label: "是否展示通道",
        },
        // 控制属性
        controlAttrs: {
          value: 0,
        },
        // 选项
        options: isHasOptions,
      },
    ];
  } else if (title === "set-rate") {
    // 调整费率
    dialog.title = "调整费率";
    dialog.width = 1000;
    dialog.rightBtnText = "取 消";
  } else if (title === "liushuimingxi") {
    // 接单设置
    dialog.title = "流水明细";
    dialog.width = 1200;
    dialog.rightBtnText = "取 消";
  } else if (title === "jiedanshezhi") {
    // 接单设置
    dialog.title = "接单设置";
    dialog.width = 1000;
    dialog.rightBtnText = "取 消";
  } else if (title === "clearing-rate") {
    dialog.visible = false;

    ElMessageBox.confirm("确定要将所有码商费率清0吗？", "将所有码商费率清0", {
      confirmButtonText: "确定",
      cancelButtonText: "取消",
      type: "warning",
    }).then(() => {
      // 访问接口；刷新列表
    });
  } else if (title === "del") {
    // 删除
    dialog.visible = false;
    ElMessageBox.confirm("确定要删除该码商吗？", "删除码商", {
      confirmButtonText: "确定",
      cancelButtonText: "取消",
      type: "warning",
    }).then(() => {
      // 访问接口；刷新列表
      deleteByIds({ ids: row.id }).then(() => {
        ElMessage.success("删除成功");
        // selectTableRows.value = [];

        if (tableDatasObj.value.list.length === 1) {
          if (tableDatasObj.value.paging.page > 1) {
            --tableDatasObj.value.paging.page;
          }
        }

        handleQuery();
      });
    });
  } else if (title === "yijiantinggong") {
    // 一键停工
    dialog.visible = false;
    ElMessageBox.confirm("确定要一键停工吗？", "一键停工", {
      confirmButtonText: "确定",
      cancelButtonText: "取消",
      type: "warning",
    }).then(() => {
      option({
        handle_order_status: 2,
      }).then(() => {
        ElMessage.success("停工成功");

        handleQuery();
      });
    });
  } else if (title === "daifufeilvshezhi") {
    // 代付费率设置
    initDialogForm.value.rowAttrs.columnsNum = 1;
    dialog.width = 400;
    dialog.title = "代付费率设置";
    dialog.leftBtnText = "确 定";
    dialog.rightBtnText = "取 消";
    initDialogForm.value.initKeys.push(
      ...[
        {
          // 类型
          type: "input-number",
          // 唯一标识
          key: "df_rate",
          // 表单属性
          formAttrs: {
            label: "代付费率",
          },
          // 控制属性
          controlAttrs: {
            // 提示文本
            placeholder: "请填写代付费率（%）",
            // 是否可清空
            clearable: true,
            precision: 2,
            step: 0.1,
            min: 0,
            max: 100,
          },
          // 控制事件
          controlOn: {},
        },
      ]
    );
  } else if (title === "zengjianyue") {
    // 增减余额
    dialog.title = "增减余额";
    dialog.leftBtnText = "确 定";
    dialog.rightBtnText = "取 消";
    initDialogForm.value.initKeys = [
      {
        // 类型
        type: "input",
        // 唯一标识
        key: "ms_name",
        // 表单属性
        formAttrs: {
          label: "码商名字",
        },
        // 控制属性
        controlAttrs: {
          // 提示文本
          // 是否可清空
          clearable: true,
          filterable: true,
          disabled: true,
        },
        value: dialog.singleData.ms_name,
        // 控制事件
        controlOn: {},
      },
      {
        // 类型
        type: "input",
        // 唯一标识
        key: "usable_amount",
        // 表单属性
        formAttrs: {
          label: "余额",
        },
        // 控制属性
        controlAttrs: {
          // 提示文本
          // 是否可清空
          clearable: true,
          filterable: true,
          disabled: true,
        },
        value: dialog.singleData.usable_amount,
        // 控制事件
        controlOn: {},
      },
      {
        // 类型
        type: "select",
        // 唯一标识
        key: "handle_type",
        // 表单属性
        formAttrs: {
          label: "操作类型",
        },
        // 控制属性
        controlAttrs: {
          // 提示文本
          placeholder: "请输入操作类型",
          // 是否可清空
          clearable: true,
          filterable: true,
        },
        value: "2",
        // 控制事件
        controlOn: {},
      },
      // {
      //   // 类型
      //   type: "select",
      //   // 唯一标识
      //   key: "capital_type",
      //   // 表单属性
      //   formAttrs: {
      //     label: "资金类型",
      //   },
      //   // 控制属性
      //   controlAttrs: {
      //     // 提示文本
      //     placeholder: "请输入资金类型",
      //     // 是否可清空
      //     clearable: true,
      //     filterable: true,
      //   },
      //   // 控制事件
      //   controlOn: {},
      // },
      {
        // 类型
        type: "select",
        // 唯一标识
        key: "reason",
        // 表单属性
        formAttrs: {
          label: "原因",
        },
        // 控制属性
        controlAttrs: {
          // 提示文本
          placeholder: "请输入原因",
          // 是否可清空
          clearable: true,
          filterable: true,
        },
        // 控制事件
        controlOn: {},
      },
      {
        // 类型
        type: "input-number",
        // 唯一标识
        key: "amount",
        // 表单属性
        formAttrs: {
          label: "金额",
        },
        // 控制属性
        controlAttrs: {
          // 提示文本
          placeholder: "请输入金额",
          // 是否可清空
          clearable: true,
          filterable: true,
        },
        // 控制事件
        controlOn: {},
      },
      {
        // 类型
        type: "input",
        // 唯一标识
        key: "remark",
        // 表单属性
        formAttrs: {
          label: "备注",
        },
        // 控制属性
        controlAttrs: {
          // 提示文本
          placeholder: "请输入备注",
          // 是否可清空
          clearable: true,
          filterable: true,
          type: "textarea",
        },
        // 控制事件
        controlOn: {},
      },
    ];

    Object.keys(options).map((key) => {
      const item = initDialogForm.value.initKeys;
      const i = item.findIndex((item) => item.key === key);

      if (i > -1) {
        initDialogForm.value.initKeys[i].options = options[key];
      }
    });
  } else if (title === "zengjiandongjiejine") {
    // 增减冻结金额
    dialog.title = "增减冻结金额";
    dialog.leftBtnText = "确 定";
    dialog.rightBtnText = "取 消";
    initDialogForm.value.initKeys = [
      {
        // 类型
        type: "input",
        // 唯一标识
        key: "ms_name",
        // 表单属性
        formAttrs: {
          label: "码商名字",
        },
        // 控制属性
        controlAttrs: {
          // 提示文本
          // 是否可清空
          clearable: true,
          filterable: true,
          disabled: true,
        },
        value: dialog.singleData.ms_name,
        // 控制事件
        controlOn: {},
      },
      {
        // 类型
        type: "input",
        // 唯一标识
        key: "frozen_amount",
        // 表单属性
        formAttrs: {
          label: "冻结金额",
        },
        // 控制属性
        controlAttrs: {
          // 提示文本
          // 是否可清空
          clearable: true,
          filterable: true,
          disabled: true,
        },
        value: dialog.singleData.frozen_amount,
        // 控制事件
        controlOn: {},
      },
      {
        // 类型
        type: "select",
        // 唯一标识
        key: "handle_type",
        // 表单属性
        formAttrs: {
          label: "操作类型",
        },
        // 控制属性
        controlAttrs: {
          // 提示文本
          placeholder: "请输入操作类型",
          // 是否可清空
          clearable: true,
          filterable: true,
        },
        value: "2",
        // 控制事件
        controlOn: {},
      },
      // {
      //   // 类型
      //   type: "select",
      //   // 唯一标识
      //   key: "capital_type",
      //   // 表单属性
      //   formAttrs: {
      //     label: "资金类型",
      //   },
      //   // 控制属性
      //   controlAttrs: {
      //     // 提示文本
      //     placeholder: "请输入资金类型",
      //     // 是否可清空
      //     clearable: true,
      //     filterable: true,
      //   },
      //   // 控制事件
      //   controlOn: {},
      // },
      {
        // 类型
        type: "select",
        // 唯一标识
        key: "reason",
        // 表单属性
        formAttrs: {
          label: "原因",
        },
        // 控制属性
        controlAttrs: {
          // 提示文本
          placeholder: "请输入原因",
          // 是否可清空
          clearable: true,
          filterable: true,
        },
        // 控制事件
        controlOn: {},
      },
      {
        // 类型
        type: "input-number",
        // 唯一标识
        key: "amount",
        // 表单属性
        formAttrs: {
          label: "金额",
        },
        // 控制属性
        controlAttrs: {
          // 提示文本
          placeholder: "请输入金额",
          // 是否可清空
          clearable: true,
          filterable: true,
        },
        // 控制事件
        controlOn: {},
      },
      {
        // 类型
        type: "input",
        // 唯一标识
        key: "remark",
        // 表单属性
        formAttrs: {
          label: "备注",
        },
        // 控制属性
        controlAttrs: {
          // 提示文本
          placeholder: "请输入备注",
          // 是否可清空
          clearable: true,
          filterable: true,
          type: "textarea",
        },
        // 控制事件
        controlOn: {},
      },
    ];

    Object.keys(options).map((key) => {
      const item = initDialogForm.value.initKeys;
      const i = item.findIndex((item) => item.key === key);

      if (i > -1) {
        initDialogForm.value.initKeys[i].options = options[key];
      }
    });
  } else if (title === "batch-del") {
    // 批量删除
    dialog.visible = false;
    ElMessageBox.confirm("确定要删除这些码商吗？", "批量删除码商", {
      confirmButtonText: "确定",
      cancelButtonText: "取消",
      type: "warning",
    }).then(() => {
      // 访问接口；刷新列表
      deleteByIds({ ids: selectTableRows.value.map((item) => item.id).join(",") }).then(
        () => {
          ElMessage.success("删除成功");
          // selectTableRows.value = [];

          if (tableDatasObj.value.list.length === 1) {
            if (tableDatasObj.value.paging.page > 1) {
              --tableDatasObj.value.paging.page;
            }
          }

          handleQuery();
        }
      );
    });
  } else if (title === "jiechusuoyoudongjie") {
    // 解除所有冻结
    dialog.visible = false;
    ElMessageBox.confirm("确定要一键解除所有冻结吗？", "一键解除所有冻结", {
      confirmButtonText: "确定",
      cancelButtonText: "取消",
      type: "warning",
    }).then(() => {
      option({
        ids: dialog.singleData.id,
        handle_order_status: 2,
      }).then(() => {
        ElMessage.success("解除所有冻结成功");

        handleQuery();
      });
    });
  } else if (title === "yijianxiugaizuidijiedanjine") {
    // 一键修改最低接单金额
    initDialogForm.value.rowAttrs.columnsNum = 1;
    dialog.title = "一键修改最低接单金额";
    dialog.width = 400;
    dialog.leftBtnText = "确 定";
    dialog.rightBtnText = "取 消";
    initDialogForm.value.initKeys.push(
      ...[
        {
          // 类型
          type: "input-number",
          // 唯一标识
          key: "df_rate",
          // 表单属性
          formAttrs: {
            label: "代付费率",
          },
          // 控制属性
          controlAttrs: {
            // 提示文本
            placeholder: "请填写接单金额",
            // 是否可清空
            clearable: true,
            precision: 2,
            step: 0.1,
            min: 0,
          },
          // 控制事件
          controlOn: {},
        },
      ]
    );
  } else if (title === "yuemingxi") {
    dialog.title = "余额流水明细";
    dialog.width = 1200;
    dialog.rightBtnText = "取 消";
  } else if (title === "dongjieyuemingxi") {
    dialog.title = "冻结余额流水明细";
    dialog.width = 1200;
    dialog.rightBtnText = "取 消";
  } else if (title === "clear-login") {
    dialog.visible = false;
    ElMessageBox.confirm("确定要清除登录失败信息吗？", "清除登录失败信息", {
      confirmButtonText: "确定",
      cancelButtonText: "取消",
      type: "warning",
    }).then(() => {
      // 访问接口；刷新列表
      login_clear({ ms_id: row.id }).then(() => {
        ElMessage.success("清除登录失败信息成功");

        handleQuery();
      });
    });
  } else if (title === "clear-google") {
    dialog.visible = false;
    ElMessageBox.confirm("确定要清除Google验证吗？", "清除Google验证", {
      confirmButtonText: "确定",
      cancelButtonText: "取消",
      type: "warning",
    }).then(() => {
      // 访问接口；刷新列表
      google_clear({ ms_id: row.id }).then(() => {
        ElMessage.success("清除Google验证成功");

        handleQuery();
      });
    });
  } else if (title === "tg") {
    // tg
    dialog.title = "TG";
    dialog.width = 400;
    dialog.leftBtnText = "绑 定";
    dialog.rightBtnText = "解 绑";

    initDialogForm.value.rowAttrs.columnsNum = 1;

    initDialogForm.value.initKeys.push(
      ...[
        {
          // 类型
          type: "input",
          // 唯一标识
          key: "tg_str",
          // 表单属性
          formAttrs: {
            label: "TG用户名",
          },
          // 控制属性
          controlAttrs: {
            // 提示文本
            placeholder: "请输入TG用户名",
            // 是否可清空
            clearable: true,
          },
          // 控制事件
          controlOn: {},
          value: dialog.singleData.tg_str,
        },
      ]
    );
  } else if (title === "remove-tg-all") {
    dialog.visible = false;

    ElMessageBox.confirm("确认一键解绑所有码商TG？", "一键解绑", {
      confirmButtonText: "确定",
      cancelButtonText: "取消",
      type: "warning",
    }).then(() => {
      // 访问接口；刷新列表
      tg_clear_all().then(() => {
        ElMessage.success("解绑所有码商TG成功");

        handleQuery();
      });
    });
  } else if (title === "copy") {
    dialog.visible = false;

    let copyArr = [];

    copyArr.push(`登录网址：${import.meta.env.VITE_APP_PAYEE_URL}/login/payee`);
    copyArr.push(`手机登录网址：${import.meta.env.VITE_APP_PAYEE_URL}/payee/mobile/`);
    copyArr.push(`码商APP安卓端下载网址：${import.meta.env.VITE_APP_PAYEE_URL}/app/payee.apk`);
    copyArr.push(`用户名：${dialog.singleData.ms_name}`);
    copyArr.push(`密码：`);

    copy(copyArr.join("\n")).then(() => {
      ElMessage.success("复制成功");
    });
  } else if (title === "set-batch-rate") {
    // dialog.visible = false;
    dialog.width = 1000;

    dialog.singleData = selectTableRows.value;
  } else if (title === "xiajidaili") {
    dialog.title = "查看下级代理";
    dialog.width = 800;
    dialog.leftBtnText = "";
    dialog.rightBtnText = "取 消";
  } else if (title === "look-batch-count") {
    dialog.title = "查看通道跑量";
    dialog.width = 1200;
    dialog.leftBtnText = "";
    dialog.rightBtnText = "取 消";
  }
}

// 弹窗对象
const dialog = reactive({
  visible: false,
  type: "user-form",
  width: 800,
  title: "",
  leftBtnText: "",
  rightBtnText: "取 消",
  singleData: {},
});
const dialogBak = cloneDeep(dialog);

let formDialogId = ref<FormInstance>();

/**
 * 关闭弹窗
 *
 * @param type 弹窗类型  用户表单：user-form | 用户导入：user-import
 */
function closeDialog() {
  dialog.visible = false;
}
function closedDialog() {
  // formDialogId.value?.resetFields();
  // formDialogId.value?.clearValidate();
  formDialogId.value = {};
  formDialogModel.value = {};
  initDialogForm.value.initKeys.splice(0);
  Object.keys(dialogBak).map((key) => {
    dialog[key] = dialogBak[key];
  });

  initDialogForm.value = cloneDeep(initDialogFormBak);
}

let formDialogModel = ref({});
function handleLeftClick() {
  if (dialog.type === "add") {
    formDialogId.value.validate((valid, fields) => {
      if (valid) {
        let params = { ...formDialogModel.value };

        // params.pass_show = params.pass_show ? 1 : 2;
        // params.order_float_amount = params.order_float_amount ? 1 : 2;
        // params.pay_page_sub_name = params.pay_page_sub_name ? 1 : 2;
        // params.int_skm_amount = params.int_skm_amount ? 1 : 2;
        // params.skm_amount_range = params.skm_amount_range ? 1 : 2;
        params.handle_order_status = params.handle_order_status ? 1 : 2;
        params.status = params.status ? 1 : 2;

        add(params).then((res) => {
          ElMessage.success("添加码商成功");
          closeDialog();
          handleQuery();
        });
      } else {
        console.log("error submit!", fields);
      }
    });
  } else if (dialog.type === "edit") {
    formDialogId.value.validate((valid, fields) => {
      if (valid) {
        let params = {
          ...dialog.singleData,
          ...formDialogModel.value,
          id: dialog.singleData.id,
        };

        switchFieldArr.map((field) => {
          params[field] = switchFieldHandle.getField(params[field]);
        });

        edit(params).then((res) => {
          ElMessage.success("修改码商资料成功");
          closeDialog();
          handleQuery();
        });
      }
    });
  } else if (dialog.type === "daifufeilvshezhi") {
    formDialogId.value.validate((valid, fields) => {
      if (valid) {
        let params = { ...formDialogModel.value };

        option(params).then((res) => {
          ElMessage.success("代付费率设置成功");
          closeDialog();
          handleQuery();
        });
      }
    });
  } else if (dialog.type === "yijianxiugaizuidijiedanjine") {
    formDialogId.value.validate((valid, fields) => {
      if (valid) {
        let params = { ...formDialogModel.value, ids: dialog.singleData.id };

        option(params).then((res) => {
          ElMessage.success("最低接单金额修改成功");
          closeDialog();
          handleQuery();
        });
      }
    });
  } else if (dialog.type === "zengjianyue" || dialog.type === "zengjiandongjiejine") {
    formDialogId.value.validate((valid, fields) => {
      if (valid) {
        let params = {
          ...formDialogModel.value,
          ms_id: dialog.singleData.id,
          capital_type: dialog.type === "zengjianyue" ? 1 : 2,
        };

        amount_change(params).then((res) => {
          ElMessage.success("最低接单金额修改成功");
          closeDialog();
          handleQuery();
        });
      }
    });
  } else if (dialog.type === "tg") {
    formDialogId.value.validate((valid, fields) => {
      if (valid) {
        let params = {
          ...formDialogModel.value,
          ms_id: dialog.singleData.id,
        };

        tg_bind(params).then((res) => {
          ElMessage.success("绑定tg成功");
          closeDialog();
          handleQuery();
        });
      }
    });
  }
}

function handleRightClick() {
  // formDialogId.
  if (dialog.type === "tg") {
    formDialogId.value.validate((valid, fields) => {
      if (valid) {
        let params = {
          ms_id: dialog.singleData.id,
        };

        tg_clear(params).then((res) => {
          ElMessage.success("解绑tg成功");
          closeDialog();
          handleQuery();
        });
      }
    });
  } else {
    closeDialog();
  }
}

function handleChangeStatus(val, obj, index, fieldName) {
  // tableDatasObj.value.list[index][fieldName] = switchFieldHandle.getField(!val);
  let params = { ...obj };
  params[fieldName] = switchFieldHandle.getField(val);
  edit(params)
    .then((res) => {
      ElMessage.success("修改成功");
      handleQuery();
    })
    .catch(() => {
      tableDatasObj.value.list[index][fieldName] = switchFieldHandle.getField(val);
      nextTick(() => {
        tableDatasObj.value.list[index][fieldName] = switchFieldHandle.getField(!val);
      });
    });
}

onMounted(() => {
  tableDatasObj.value.queryParams = { ...searchForm.value };

  handleQuery(tableDatasObj.value.paging);
});
</script>

<style lang="scss" scoped>
.info-container {
  font-size: var(--el-font-size-extra-small);

  span {
    background-color: #1e9fff;
    display: inline-block;
    padding: 0 10px;
    margin: 0 5px;
    color: #fff;
  }
}
</style>
